要將兩份無法公開分享的 Google 試算表資料採集到 Google 表單中,需要在 Google Apps Script 中設置兩個主要部分:
SpreadsheetApp
和 Spreadsheet
服務來訪問試算表資料。FormApp
和 Form
服務來動態創建或填寫 Google 表單中的資料。以下是 Google Apps Script 的範例程式碼,您可以按照此範例進行修改來適應您的具體需求。
function syncDataToForm() {
// 設置兩個試算表的 ID
var sheet1Id = '你的試算表1 ID';
var sheet2Id = '你的試算表2 ID';
// 訪問試算表 1
var sheet1 = SpreadsheetApp.openById(sheet1Id).getSheetByName('工作表名稱');
var data1 = sheet1.getRange(2, 1, sheet1.getLastRow() - 1, sheet1.getLastColumn()).getValues();
// 訪問試算表 2
var sheet2 = SpreadsheetApp.openById(sheet2Id).getSheetByName('工作表名稱');
var data2 = sheet2.getRange(2, 1, sheet2.getLastRow() - 1, sheet2.getLastColumn()).getValues();
// 將資料合併成一個陣列
var combinedData = data1.concat(data2);
// 設置 Google 表單 ID
var formId = '你的 Google 表單 ID';
var form = FormApp.openById(formId);
// 清除表單中的所有項目
clearFormItems(form);
// 根據合併的資料創建表單題目
for (var i = 0; i < combinedData.length; i++) {
var row = combinedData[i];
var questionTitle = row[0]; // 取出資料中第一列作為問題標題(根據需求調整)
form.addMultipleChoiceItem()
.setTitle(questionTitle)
.setChoiceValues(row.slice(1)); // 取出後續列作為選項(根據需求調整)
}
}
// 清除表單中的所有項目
function clearFormItems(form) {
var items = form.getItems();
for (var i = 0; i < items.length; i++) {
form.deleteItem(items[i]);
}
}
syncDataToForm()
函數:
getRange()
方法來讀取資料,跳過第一行(通常是標題行)。combinedData
。clearFormItems()
函數:
您需要確保腳本擁有讀取這兩份試算表和編輯 Google 表單的權限。
執行
-> 選擇函數
-> 選擇 syncDataToForm
。row
陣列的訪問方式。編輯
-> 目前專案的觸發條件
-> 添加觸發條件。這樣,就能實現從無法公開分享的兩個試算表同步資料至 Google 表單中,可以進一步自定義程式碼以實現不同的資料映射和表單創建邏輯。